<?php

namespace app\v1\logic;

use app\services\DyService\DySign;

class PayLogic
{
    /**
     * 抖音支付
     * 参数详解请查看：https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/server/ecpay/pay-list/pay
     * @param $param
     * @return array
     */
    public function dy_pay($param): array
    {
        $dyService = new DySign();
        $url = 'https://developer.toutiao.com/api/apps/ecpay/v1/create_order';
        $postData['app_id'] = config('pay.dy_app_id');
        $postData['out_order_no'] = $param['out_order_no']; // 订单号
        $postData['total_amount'] = $param['total_amount']; // 支付金额(分)
        $postData['subject'] = $param['subject']; // 商品详情
        $postData['body'] = $param['body']; // 商品描述
        $postData['valid_time'] = config('pay.order_lose_time'); // 订单有效时间(秒)，当前设置15分钟
        $postData['cp_extra'] = urlencode(json_encode(['aaa' => 234, 'bbb' => 'aaa'])); // 开发者自定义字段，回调原样回传
        $postData['notify_url'] = config('pay.dy_notify_url'); // 回调地址
        $postData['thirdparty_id'] = ''; // 第三方平台服务商 id，非服务商模式留空
        $postData['disable_msg'] = 0; // 是否屏蔽支付完成后推送用户抖音消息，1-屏蔽 0-非屏蔽，默认为0。 特别注意： 若接入POI, 请传1。因为POI订单体系会发消息，所以不用再接收一次担保支付推送消息
        $postData['msg_page'] = ''; // 支付完成后推送给用户的抖音消息跳转页面，开发者需要传入在app.json中定义的链接，如果不传则跳转首页。
        $postData['store_uid'] = ''; // 可用此字段指定本单使用的收款商户号
        $postData['sign'] = $dyService->sign($postData);//获取签名
//        print_r($postData);die;
        $res = $dyService->json_post($url, $postData);
        return json_decode($res, true);
    }
}